package com.example.NettyStudy;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;

import java.util.Date;


public class TimeServerHandler extends ChannelHandlerAdapter {
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        System.out.println("服务器读取到客户端请求...");

        ByteBuf buf=(ByteBuf) msg;

        byte[] req=new byte[buf.readableBytes()];

        buf.readBytes(req);

        String body=new String(req,"UTF-8");

        System.out.println("the time server receive order:"+body);

        String curentTime="QUERY TIME ORDER".equalsIgnoreCase(body)?new Date(System.currentTimeMillis()).toString():"BAD ORDER";

        ByteBuf resp= Unpooled.copiedBuffer(curentTime.getBytes());

        ctx.write(resp);

        System.out.println("服务器做出了响应");



    }

    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {

        ctx.flush();

        System.out.println("服务器readComplete 响应完成");

    }

    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)

            throws Exception {

        ctx.close();

        System.out.println("服务器异常退出"+cause.getMessage());

    }
}
